A.7. Repeating Events and Recurrence Rules

Mismatches between mobile device and server-side representations of repeating events are commonly observed by users of calendar synchronization. Irregular recurrence patterns and modified instances of a recurrence set are a particular problem. These mismatches can have a serious impact as they can lead to corruption of a server-side calendar.

There are two main causes for incorrect synchronization of repeating events — usage of vCalendar and a lack of common understanding about recurrence capabilities. Devices often claim that they can support repeating meetings, but in reality can only support a very small subset of the repeating capabilities that iCalendar provides for. For example, devices will support deleted exceptions but not modified exceptions or only support a small subset of recurrence rules.

To ensure there is a common understanding between the mobile device and the server, the Calendar & Scheduling Consortium Mobile Technical Committee produced a recommendations paper [Mobile Recurrence Interoperability Recommendations] to propose three levels of recurrence support.

A simplified summary of the levels for mobile devices are:

  1. Device provides no support for repeating events

  2. Device can handle recurrence rules

  3. Device can handle recurrence rules with exceptions and extra dates

For devices that don’t claim any sort of repeating support (level 0 devices) server-side implementations should expand all repeating events and send simple single instance events for all instances within the synchronization range. The fact that the event is repeating should be maintained server-side and any modification done on the device side should not affect this. This means that although the meeting is not shown as recurring on the device, the user will not miss an important meeting because the device has limited capabilities.